package com.hz.ruoyiequipment.data.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hz.ruoyiequipment.data.domain.AgrEquipment;
import com.hz.ruoyiequipment.data.domain.AgrEquipmentCq;
import com.hz.ruoyiequipment.data.domain.AgrEquipmentQx;
import com.hz.ruoyiequipment.data.domain.AgrEquipmentTr;
import com.hz.ruoyiequipment.data.domain.vo.*;
import com.ruoyi.common.core.web.domain.AjaxResult;

import java.util.List;

/**
 * @Author: xqd
 * @CreateDate: 2025/03/06/10:42
 * @Description: 设备表服务
 */
public interface AgrEquipmentService extends IService<SoilEquipment> {



    /**
     * 查询设备列表
     * @Author: zjk
     * @param agrEquipment 设备
     * @return 设备集合
     */
    public List<AgrEquipment> selectAgrEquipmentList(AgrEquipment agrEquipment);


    /**
     * 查询设备列表
     * @Author: zjk
     * @param equipmentTypes 设备
     * @return 根据设备types查询集合
     */
    public List<EquipmentWarningSelectVo> selectAgrEquipmentListByTypes(String[] equipmentTypes);

    /**
     * @param equipmentStatus 设备状态
     * @return:
     * @Author: xqd
     * @Date: 2025/3/8 16:59
     * @Description: 查询土壤墒情设备信息列表
     */
    List<SoilEquipment> getSoilEquipment(Integer equipmentStatus, String equipmentCode, String plotsName);

    /**
     * @return:
     * @Author: xqd
     * @Date: 2025/3/9 14:57
     * @Description: 查询气象设备信息列表
     */
    List<QxEquipment> getQxEquipment(QxEquipment qxEquipment);

    /**
     * @return:
     * @Author: xqd
     * @Date: 2025/3/9 17:08
     * @Description: 查询虫情设备信息列表
     */
    List<CqEquipment> getCqEquipment(CqEquipment cqEquipment);

    /**
     * @return:
     * @Author: xqd
     * @Date: 2025/3/8 16:59
     * @Description: 获得土壤墒情设备的详细信息
     */
    AjaxResult getSoilDetail(Long equipmentId);

    /**
     * @return:
     * @Author: xqd
     * @Date: 2025/3/9 14:58
     * @Description: 获得气象设备的详细信息
     */
    AjaxResult getQxDetail(Long equipmentId);

    /**
     * @return:
     * @Author: xqd
     * @Date: 2025/3/9 17:08
     * @Description: 获得虫情设备的详细信息
     */
    AjaxResult getCqDetail(Long equipmentId);

    /**
     * @return:
     * @Author: xqd
     * @Date: 2025/3/8 17:00
     * @Description: 新增土壤墒情设备
     */
    AjaxResult insertSoil(AgrEquipment agrEquipment, AgrEquipmentTr agrEquipmentTr);

    /**
     * @return:
     * @Author: xqd
     * @Date: 2025/3/9 14:58
     * @Description: 新增气象设备
     */
    AjaxResult insertQx(AgrEquipment agrEquipment, AgrEquipmentQx agrEquipmentQx);

    /**
     * @return:
     * @Author: xqd
     * @Date: 2025/3/9 17:08
     * @Description: 新增虫情设备
     */
    AjaxResult insertCq(AgrEquipment agrEquipment, AgrEquipmentCq agrEquipmentCq);

    Integer countJk();
    Integer countQx();
    Integer countTr();
    Integer countSf();
    Integer countCq();
    FirstPageEqVo getFirstPageEq();

}
